The scale of computing infrastructure has experienced explosive growth at least partially due to multiple applications being supported on network fabric. For instance, data centers and enterprises commonly support multiple applications on the same infrastructure. The infrastructures typically include one or more networks supporting the traffic of the applications. In most instances, existing networks are designed for best-effort traffic, and they are unable to meet strict and sometimes orthogonal quality-of-service (QoS) requirements, such as high bandwidth and low latency, for certain applications. The networks are over provisioned or there is no mechanism to shield applications from each other.
Two of the most commonly adopted techniques to sustain QoS are network isolation and network over-provisioning. Data center networks, for instance, have isolated networks with specialized hardware and communication protocols for each class of traffic. In some cases, networks are over-provisioned by a large factor of 2.5× to 8× to avoid QoS violations. Both solutions can lead to heavy under-utilization and are not cost effective.